package com.efast.dmom.mgmt.dao.les;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.efast.dmom.mgmt.bean.master.LocDockBean;
import com.efast.dmom.mgmt.entity.les.TwDocAsnHeader;
import com.efast.dmom.mgmt.entity.les.TwInvSkuLoctl;
import com.efast.dmom.mgmt.utils.Assist;

@Repository
public interface TwDocAsnHeaderDao {

	/**
	 * @param dockId
	 * @return
	 */
	List<LocDockBean> queryLocByDock(@Param(value = "dockId") int dockId);

    /**
     *
     * @param partNoVersion
     * @return
     */
	int queryBatchByPartNoVersion(@Param(value = "partNoVersion") String partNoVersion);

    /**
     *
     * @param partNoVersion
     * @param trBasPartSupplId
     * @return
     */
	Integer queryMinMaxPartNoVersion(@Param(value = "partNo") String partNoVersion,
			@Param(value = "trBasPartSupplId") int trBasPartSupplId);
	
	TwInvSkuLoctl queryCurQtyByPartNoVersion(@Param(value = "partNo") String partNoVersion);

	/**
	 * 获得TwDocAsnHeader数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getTwDocAsnHeaderRowCount(Assist assist);

	/**
	 * 获得TwDocAsnHeader数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<TwDocAsnHeader> selectTwDocAsnHeader(Assist assist);

	/**
	 * 获得一个TwDocAsnHeader对象,以参数TwDocAsnHeader对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	TwDocAsnHeader selectTwDocAsnHeaderByObj(TwDocAsnHeader obj);

	/**
	 * 通过TwDocAsnHeader的id获得TwDocAsnHeader对象
	 * 
	 * @param id
	 * @return
	 */
	TwDocAsnHeader selectTwDocAsnHeaderById(Integer id);

	/**
	 * 插入TwDocAsnHeader到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	// @SaveOrUpdateOrDelControl
	int insertTwDocAsnHeader(TwDocAsnHeader value);

	/**
	 * 插入TwDocAsnHeader中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNonEmptyTwDocAsnHeader(TwDocAsnHeader value);

	/**
	 * 批量插入TwDocAsnHeader到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertTwDocAsnHeaderByBatch(List<TwDocAsnHeader> value);

	/**
	 * 通过TwDocAsnHeader的id删除TwDocAsnHeader
	 * 
	 * @param id
	 * @return
	 */
	int deleteTwDocAsnHeaderById(Integer id);

	/**
	 * 通过辅助工具Assist的条件删除TwDocAsnHeader
	 * 
	 * @param assist
	 * @return
	 */
	int deleteTwDocAsnHeader(Assist assist);

	/**
	 * 通过TwDocAsnHeader的id更新TwDocAsnHeader中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateTwDocAsnHeaderById(TwDocAsnHeader enti);

	/**
	 * 通过辅助工具Assist的条件更新TwDocAsnHeader中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateTwDocAsnHeader(@Param("enti") TwDocAsnHeader value, @Param("assist") Assist assist);

	/**
	 * 通过TwDocAsnHeader的id更新TwDocAsnHeader中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNonEmptyTwDocAsnHeaderById(TwDocAsnHeader enti);

	/**
	 * 通过辅助工具Assist的条件更新TwDocAsnHeader中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNonEmptyTwDocAsnHeader(@Param("enti") TwDocAsnHeader value, @Param("assist") Assist assist);

	/**
	 * @Title: queryBatchByPartNoVersion @Description: TODO(这里用一句话描述这个方法的作用) @param
	 *         参数 @return void 返回类型 @throws
	 */

}